<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>DataInputBlock (POI API Documentation)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="DataInputBlock (POI API Documentation)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DataInputBlock.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/poi/poifs/storage/BlockWritable.html" title="interface in org.apache.poi.poifs.storage"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../../org/apache/poi/poifs/storage/DocumentBlock.html" title="class in org.apache.poi.poifs.storage"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/poi/poifs/storage/DataInputBlock.html" target="_top">FRAMES</a></li>
<li><a href="DataInputBlock.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<p class="subTitle">org.apache.poi.poifs.storage</p>
<h2 title="Class DataInputBlock" class="title">Class DataInputBlock</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.apache.poi.poifs.storage.DataInputBlock</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <strong>DataInputBlock</strong>
extends java.lang.Object</pre>
<div class="block">Wraps a <tt>byte</tt> array and provides simple data input access.
 Internally, this class maintains a buffer read index, so that for the most part, primitive
 data can be read in a data-input-stream-like manner.<p/>

 Note - the calling class should call the <a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#available()"><code>available()</code></a> method to detect end-of-buffer
 and move to the next data block when the current is exhausted.
 For optimisation reasons, no error handling is performed in this class.  Thus, mistakes in
 calling code ran may raise ugly exceptions here, like <code>ArrayIndexOutOfBoundsException</code>,
 etc .<p/>

 The multi-byte primitive input methods (<a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readUShortLE()"><code>readUShortLE()</code></a>, <a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readIntLE()"><code>readIntLE()</code></a> and
 <a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readLongLE()"><code>readLongLE()</code></a>) have corresponding 'spanning read' methods which (when required) perform
 a read across the block boundary.  These spanning read methods take the previous
 <a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage"><code>DataInputBlock</code></a> as a parameter.
 Reads of larger amounts of data (into <tt>byte</tt> array buffers) must be managed by the caller
 since these could conceivably involve more than two blocks.</div>
<dl><dt><span class="strong">Author:</span></dt>
  <dd>Josh Micich</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#available()">available</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readFully(byte[], int, int)">readFully</a></strong>(byte[]&nbsp;buf,
         int&nbsp;off,
         int&nbsp;len)</code>
<div class="block">Reads <tt>len</tt> bytes from this block into the supplied buffer.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readIntLE()">readIntLE</a></strong>()</code>
<div class="block">Reads an <tt>int</tt> which was encoded in <em>little endian</em> format.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readIntLE(org.apache.poi.poifs.storage.DataInputBlock, int)">readIntLE</a></strong>(<a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</a>&nbsp;prevBlock,
         int&nbsp;prevBlockAvailable)</code>
<div class="block">Reads an <tt>int</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readLongLE()">readLongLE</a></strong>()</code>
<div class="block">Reads a <tt>long</tt> which was encoded in <em>little endian</em> format.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readLongLE(org.apache.poi.poifs.storage.DataInputBlock, int)">readLongLE</a></strong>(<a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</a>&nbsp;prevBlock,
          int&nbsp;prevBlockAvailable)</code>
<div class="block">Reads a <tt>long</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readUByte()">readUByte</a></strong>()</code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readUShortLE()">readUShortLE</a></strong>()</code>
<div class="block">Reads a <tt>short</tt> which was encoded in <em>little endian</em> format.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html#readUShortLE(org.apache.poi.poifs.storage.DataInputBlock)">readUShortLE</a></strong>(<a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</a>&nbsp;prevBlock)</code>
<div class="block">Reads a <tt>short</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="available()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>available</h4>
<pre>public&nbsp;int&nbsp;available()</pre>
</li>
</ul>
<a name="readUByte()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUByte</h4>
<pre>public&nbsp;int&nbsp;readUByte()</pre>
</li>
</ul>
<a name="readUShortLE()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUShortLE</h4>
<pre>public&nbsp;int&nbsp;readUShortLE()</pre>
<div class="block">Reads a <tt>short</tt> which was encoded in <em>little endian</em> format.</div>
</li>
</ul>
<a name="readUShortLE(org.apache.poi.poifs.storage.DataInputBlock)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readUShortLE</h4>
<pre>public&nbsp;int&nbsp;readUShortLE(<a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</a>&nbsp;prevBlock)</pre>
<div class="block">Reads a <tt>short</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.</div>
</li>
</ul>
<a name="readIntLE()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readIntLE</h4>
<pre>public&nbsp;int&nbsp;readIntLE()</pre>
<div class="block">Reads an <tt>int</tt> which was encoded in <em>little endian</em> format.</div>
</li>
</ul>
<a name="readIntLE(org.apache.poi.poifs.storage.DataInputBlock, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readIntLE</h4>
<pre>public&nbsp;int&nbsp;readIntLE(<a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</a>&nbsp;prevBlock,
            int&nbsp;prevBlockAvailable)</pre>
<div class="block">Reads an <tt>int</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.</div>
</li>
</ul>
<a name="readLongLE()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readLongLE</h4>
<pre>public&nbsp;long&nbsp;readLongLE()</pre>
<div class="block">Reads a <tt>long</tt> which was encoded in <em>little endian</em> format.</div>
</li>
</ul>
<a name="readLongLE(org.apache.poi.poifs.storage.DataInputBlock, int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>readLongLE</h4>
<pre>public&nbsp;long&nbsp;readLongLE(<a href="../../../../../org/apache/poi/poifs/storage/DataInputBlock.html" title="class in org.apache.poi.poifs.storage">DataInputBlock</a>&nbsp;prevBlock,
              int&nbsp;prevBlockAvailable)</pre>
<div class="block">Reads a <tt>long</tt> which spans the end of <tt>prevBlock</tt> and the start of this block.</div>
</li>
</ul>
<a name="readFully(byte[], int, int)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>readFully</h4>
<pre>public&nbsp;void&nbsp;readFully(byte[]&nbsp;buf,
             int&nbsp;off,
             int&nbsp;len)</pre>
<div class="block">Reads <tt>len</tt> bytes from this block into the supplied buffer.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DataInputBlock.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/poi/poifs/storage/BlockWritable.html" title="interface in org.apache.poi.poifs.storage"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../../org/apache/poi/poifs/storage/DocumentBlock.html" title="class in org.apache.poi.poifs.storage"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/poi/poifs/storage/DataInputBlock.html" target="_top">FRAMES</a></li>
<li><a href="DataInputBlock.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li>FIELD&nbsp;|&nbsp;</li>
<li>CONSTR&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>
                <i>Copyright 2014 The Apache Software Foundation or
        its licensors, as applicable.</i>
            </small></p>
</body>
</html>
